/*
 * IC_PIT.c
 *
 *  Created on: Nov 26, 2013
 *      Author: Efrain
 */
#include "IC_Headers/IC_PIT.h"
#include "Mytypes.h"


uint8 u8_Adelante_Atras[20];
uint8 u8_Derecha_Izquierda[20];
uint8 u8_Index_Adelante_Atras,u8_Flag_Adelante_Atras;
uint8 u8_Index_Derecha_Izquierda,u8_Flag_Derecha_Izquierda;
uint8 FLAG = 0; //Bandera que permite multiplexear los canales del ADC

void vdfn_IC_PIT_Init(void){
	SIM_SCGC6 |= SIM_SCGC6_PIT_MASK; //Clock Gating for PIT Enable 
	PIT_MCR = PIT_MCR_FRZ_MASK;// | (0 << 30); // Allows Freezing Counters when debugging | Enables/Disables PIT timers.
	PIT_LDVAL1 = 230; //52Khz
	PIT_TCTRL1 |= PIT_TCTRL_TIE_MASK; // Timer Interrupt Enable 
	//PIT_TCTRL1 |= PIT_TCTRL_TEN_MASK; //Timer Enable
	//PIT_TCTRL1 |= PIT_DISABLE;
	PIT_TCTRL1 |= PIT_ENABLE;
	
}

void PIT_IRQHandler2(void){
		PIT_TFLG1 = 1; //Clears flag writing 1 on Flag register.

		while((ADC0_SC1B & 128) == 0) // 1 = Conversion completed, 0 = conversion is not completed
		{								}
			
			if(FLAG == 255){
				u8_Adelante_Atras[u8_Index_Adelante_Atras] = ADC0_RB;
					
				if(u8_Index_Adelante_Atras  > 20){
						u8_Index_Adelante_Atras = 0;
						u8_Flag_Adelante_Atras = True;
					}
					else{
						u8_Flag_Adelante_Atras = False;
						u8_Index_Adelante_Atras++;
						}
				
				ADC0_SC1B = ADC_SC1_ADCH(7);
				FLAG = ~FLAG;
			}
			else{
				u8_Derecha_Izquierda[u8_Index_Derecha_Izquierda] = ADC0_RB;
				
				if(u8_Index_Derecha_Izquierda  > 20){
					u8_Index_Derecha_Izquierda = 0;
					u8_Flag_Derecha_Izquierda = True;
					}
					else{
						u8_Flag_Derecha_Izquierda = False;
						u8_Index_Derecha_Izquierda++;
						}
				ADC0_SC1B = ADC_SC1_ADCH(6);
				FLAG = ~FLAG;	
			}			
		
				
		//ADC0_SC1B = ADC_SC1_ADCH(6); // Esta linea tiene que estar cambiando dentro de la tarea entre 6 y 7, un canal por camara,  11111 (31) = Disabled
		
		
}

